// 首页标语 [因为首页的数据一般很长时间才会更改, 为了减少请求, 将数据放入仓库中]

import { getBanners } from "@/api/banner";

export default {
  namespaced: true, // 开启命名空间
  state: {
    loading: false,
    data: [], // banner的数据
  },
  mutations: {
    setLoading(state, payload) {
      state.loading = payload;
    },
    setData(state, payload) {
      state.data = payload;
    },
  },
  actions: {
    async fetchBanner(ctx) {
      if (ctx.state.data.length) {
        // 如果已经获取过数据, 则不再发送请求
        return;
      }
      ctx.commit("setLoading", true);
      const resp = await getBanners();
      ctx.commit("setData", resp);
      ctx.commit("setLoading", false);
    },
  },
};
